/**
 * 手风琴管理模块
 * 负责侧边栏的展开/收起功能
 */
class AccordionManager {
    constructor() {
        this.setupAccordion();
    }

    /**
     * 设置手风琴功能
     */
    setupAccordion() {
        // 只处理主分类的手风琴，子分类不需要
        const mainAccordionHeaders = document.querySelectorAll('h3.accordion-header');
        
        mainAccordionHeaders.forEach(header => {
            header.addEventListener('click', () => {
                const targetId = header.getAttribute('data-target');
                const content = document.getElementById(targetId);
                
                if (content) {
                    const isCollapsed = content.classList.contains('collapsed');
                    
                    if (isCollapsed) {
                        // 展开
                        content.classList.remove('collapsed');
                        header.classList.remove('collapsed');
                    } else {
                        // 收起
                        content.classList.add('collapsed');
                        header.classList.add('collapsed');
                    }
                }
            });
        });
    }

    /**
     * 展开指定内容
     * @param {string} targetId - 目标内容ID
     */
    expand(targetId) {
        const content = document.getElementById(targetId);
        const header = document.querySelector(`[data-target="${targetId}"]`);
        
        if (content && header) {
            content.classList.remove('collapsed');
            header.classList.remove('collapsed');
        }
    }

    /**
     * 收起指定内容
     * @param {string} targetId - 目标内容ID
     */
    collapse(targetId) {
        const content = document.getElementById(targetId);
        const header = document.querySelector(`[data-target="${targetId}"]`);
        
        if (content && header) {
            content.classList.add('collapsed');
            header.classList.add('collapsed');
        }
    }

    /**
     * 切换指定内容的展开状态
     * @param {string} targetId - 目标内容ID
     */
    toggle(targetId) {
        const content = document.getElementById(targetId);
        const header = document.querySelector(`[data-target="${targetId}"]`);
        
        if (content && header) {
            const isCollapsed = content.classList.contains('collapsed');
            
            if (isCollapsed) {
                this.expand(targetId);
            } else {
                this.collapse(targetId);
            }
        }
    }
}

// 导出类（如果使用模块系统）
if (typeof module !== 'undefined' && module.exports) {
    module.exports = AccordionManager;
}
